home *** CD-ROM | disk | FTP | other *** search
/ HamCall (October 1991) / HamCall (Whitehall Publishing)(1991).bin / util / encrypt / iris.doc < prev    next >
Text File  |  1990-10-14  |  49KB  |  1,273 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.                                   
  15.                                        IRIS
  16.                                        ----
  17.  
  18.  
  19.  
  20.  
  21.                           A Cryptographic Security System
  22.  
  23.  
  24.  
  25.  
  26.                                    Version 3.7
  27.  
  28.                                     July 1989
  29.      
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.                                        IRIS
  42.  
  43.  
  44.                  A goddess, the daughter of the  Titan Thaumas and
  45.                  the Oceanid Electra. Iris carried the messages of
  46.                  the Gods.  Iris means 'rainbow' in Greek, and the
  47.                  personification of this phenomenon was considered
  48.                  by the Greeks to connect sky and earth; hence her
  49.                  function as messenger.  Callimachus portrays Iris
  50.                  as sleeping  under Hera's throne, ever shod so as
  51.                  to be ready to carry her messages on the instant.
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.     Contents
  64.     --------
  65.  
  66.  
  67.  
  68.  
  69.     Introduction   Overview of IRIS
  70.                    The Data Encryption module
  71.                         The RSA cipher
  72.                         The DES cipher
  73.                         The VERNAM cipher
  74.                         The PLAYFAIR cipher
  75.                         The BAZERIES cipher
  76.  
  77.     Reference      IRIS startup
  78.                    IRIS command reference
  79.                    Maintaining key files
  80.                    Future enhancements
  81.  
  82.  
  83.     Appendix       A - IRIS syntax conventions
  84.                    B - IRIS error messages
  85.                    C - Bibliography
  86.                     
  87.     Overview of IRIS
  88.     ----------------
  89.  
  90.  
  91.     IRIS   implements  commercial  cryptographic  techniques  under   the   DOS 
  92.     environment:
  93.  
  94.               RSA public key cryptography
  95.  
  96.               DES cryptography
  97.  
  98.               VERNAM (XOR) cryptography
  99.  
  100.               PLAYFAIR cryptography
  101.  
  102.               BAZERIES cryptography
  103.  
  104.               CRC (checksum) generation
  105.  
  106.               Secure file erasure
  107.  
  108.     IRIS  is  intended  to be used by users with a need to  store  or  exchange 
  109.     sensitive information in a secure manner.
  110.  
  111.     A  file  containing sensitive information such as a  spreadsheet  detailing 
  112.     company  annual  results  prior to publication, may be  encrypted  by  IRIS 
  113.     effectively precluding unauthorised disclosure. The (encrypted) file may be 
  114.     copied  to  floppy disc and send via public mail (an insecure  channel)  to 
  115.     another  party, who, having access to IRIS and the KEY used to encrypt  the 
  116.     document,  will  be  able  to decrypt  the  file,  producing  the  original 
  117.     spreadsheet.
  118.  
  119.  
  120.     The  IRIS software is written in the 'C' language, and has been  ported  to 
  121.     MS-DOS, UNIX, and VAX/VMS.
  122.  
  123.     The RSA cipher
  124.     --------------
  125.  
  126.  
  127.               'Defendit Numerus'
  128.                         [ There is safety in numbers ]
  129.  
  130.  
  131.     In  1976 Whitfield Diffie and Martin Hellman introduced  the  revolutionary  
  132.     concept of a public key cryptosystem.  Unlike classical cryptosystems,  the 
  133.     public  key  cryptosystem has two separate keys, an encryption  key  and  a 
  134.     decryption key.
  135.  
  136.     The  major  concept of this encryption scheme is  that  publicly  revealing   
  137.     the   encryption  key  does   not   reveal   the corresponding   decryption  
  138.     key.   This  has  two  important consequences:
  139.  
  140.  
  141.          o  Couriers or other secure means are not needed to       
  142.             transmit keys, since a message can be enciphered       
  143.             using an encryption key publicly revealed by the       
  144.             person who wishes to receive the message, and this       
  145.             publicly revealed key yields no useful information       
  146.             about the decryption key.
  147.  
  148.  
  149.          o  A message can be 'signed' using a privately held 
  150.             decryption  key. Anyone can verify this  'Digital 
  151.             Signature' using the corresponding  publicly 
  152.             revealed encryption key.
  153.  
  154.  
  155.  
  156.  
  157.     Applications
  158.     ------------
  159.  
  160.  
  161.          o  Electronic  mail - A public key  cryptosystem can       
  162.             ensure that the two most important properties of       
  163.             'paper mail' are preserved: (a) Messages are       
  164.             private, and (b) Messages can be signed.
  165.  
  166.  
  167.          o  Key distribution for conventional cryptosystems -
  168.             Since conventional cryptosystems rely on the 
  169.             privacy of the 'key' to ensure privacy of the 
  170.             message, distribution of the key requires a secure 
  171.             channel, A public key cryptosystem can provide 
  172.             this channel.
  173.  
  174.     The Limitation of Conventional Cryptosystems
  175.     --------------------------------------------
  176.  
  177.  
  178.     A  conventional  cryptosystem  uses  only  one  key,  which  must  be  made  
  179.     available  to  both  the  encryptor  (Sender)  and  decryptor   (Receiver).   
  180.     Therein  lies  the  most  serious  problem  of conventional  cryptosystems:  
  181.     Some  secure  method  must   exist for  distributing  secret  keys  to  the 
  182.     encryptor  and  decryptor, if that secure method exists,   then  surely  it 
  183.     could be  used to transmit the secret message.
  184.  
  185.     This is known as the 'Key Distribution Problem'
  186.  
  187.     A   public   key  cryptosystem  has two keys  which  have   the  following, 
  188.     almost magical properties:
  189.  
  190.          o  For each encryption key there is a decryption key       
  191.             which is NOT the same as the encryption key.
  192.  
  193.          o  It is feasible to compute a pair of keys, 
  194.             consisting of an encryption key and a 
  195.             corresponding decryption key.
  196.  
  197.          o  It is not feasible to compute the decryption 
  198.             key from knowledge of the encryption key.
  199.  
  200.     Because  of these properties, two people can use a public key  cryptosystem  
  201.     to communicate privately without  transmitting any secret keys. To set  up, 
  202.     you  generate a pair of keys, and send  the  encryption  key to,  say  Mary 
  203.     by   any   convenient means.  It  need  not be kept secret.  It  can   only  
  204.     encrypt messages - not decrypt them.  Revealing it discloses nothing useful 
  205.     about  the  decryption key.  Mary can use it to encrypt messages  and  send 
  206.     them  to you.  No one but you, however, can decrypt the message  (not  even 
  207.     Mary!), as long as you do not reveal your private decryption key.
  208.  
  209.     Digital Signatures
  210.     ------------------
  211.  
  212.     Very   closely  related  to  the  RSA  cipher  is the  concept  of  digital    
  213.     signatures. One problem with corresponding electronically,  such  as via  a 
  214.     large scale computer network,  is that  messages  can  easily be forged   - 
  215.     you  usually  cannot  be certain  that  the sender of a received message is  
  216.     actually  the person claimed  in  the message. A public key   cryptosystem, 
  217.     however   can  be used to provide positive identification  of   any  sender  
  218.     who  has a public key.  If,  for example Mary has filed  a public   key  in 
  219.     some  public access file,  she can digitally sign a message  by  decrypting 
  220.     it with her private decryption key  before publishing the message.  Anybody 
  221.     can  reveal  the  plaintext by encrypting the message  with  Mary's  public 
  222.     encryption key;  if the plaintext is revealed, then Mary must have authored 
  223.     the message.
  224.  
  225.     One   can  take  this  idea  a  step further,  Mary can decrypt  a  message  
  226.     with  her  private  decryption key,  then encrypt  it   with  your   public 
  227.     encryption key.  To reveal the plaintext,  you  must decrypt  the   message  
  228.     with your  private  decryption  key,  then encrypt  it  with Mary's  public 
  229.     encryption  key.   The result  is  a message  which  only Mary  could  have 
  230.     created,  and only  you  can read!
  231.  
  232.  
  233.     The Rivest Shamir Adleman (RSA) cryptosystem
  234.     --------------------------------------------
  235.  
  236.     In  1978,  a group of researchers at MIT published  a  paper describing the 
  237.     now celebrated, RSA cryptosystem.
  238.  
  239.     The  security  of the RSA cryptosystem is based on the  fact that  although 
  240.     finding large prime numbers is computationally easy, factoring the  product 
  241.     of  two  such primes is at present computationally   infeasible.  In  fact,  
  242.     this  is  an  ancient problem  which  has resisted attack  by  the   worlds  
  243.     greatest  mathematicians  for  many  centuries.   Fermat  (1601?-1665)  and 
  244.     Legendre   (1752-1833)  both  developed  factoring   algorithms;  some   of  
  245.     todays more efficient algorithms are based on  the work of Legendre.
  246.  
  247.  
  248.          'The  problem  of  distinguishing  prime  numbers  from 
  249.          composites,  and  of  resolving composite numbers  into 
  250.          their  prime factors is one of the most  important  and 
  251.          useful  in  all  of  arithmetic....    The  dignity  of 
  252.          science  seems to demand that every aid to the solution 
  253.          of such an elegant and celebrated problem be  zealously 
  254.          cultivated.'
  255.  
  256.               - K.F. Gauss, Disquisitiones Arithmeticae, Art. 329 (1801)
  257.  
  258.     The Mathematics of the RSA Cipher
  259.     ---------------------------------
  260.  
  261.     The  RSA  key  has  three elements, 'N' & 'E'  which  can  be  made  public 
  262.     knowledge,  and 'D' which must be kept private to the individual  who  owns 
  263.     the  RSA  key,  as 'D' is the means of decrypting a  text  which  has  been 
  264.     encrypted using 'N' & 'E'.
  265.  
  266.     Assuming   that  we have computed a 125 digit prime,  p and   a  130  digit 
  267.     prime, q, a 250 digit RSA key can be computed thus:
  268.  
  269.          N:
  270.               N = pq
  271.  
  272.          E:
  273.               Any Random integer in the interval 3 ... phi(n) -1
  274.               provided gcd(E,phi(n)) = 1
  275.  
  276.               where phi(n) is the Euler totient function (p-1)(q-1)
  277.               and gcd is 'greatest common divisor'
  278.  
  279.          D:
  280.               D = multiplicative inverse of E mod phi(n)
  281.  
  282.  
  283.     The  number  of 250 digit keys producible is much greater than  10  to  the 
  284.     power 200.  (It  is worth considering that the number of atoms in the known 
  285.     universe is roughly 10 to the power 80.)
  286.  
  287.     IRIS supports RSA keys of up to 500 digits in length.
  288.     Encrypting and Decrypting
  289.     -------------------------
  290.  
  291.     For  the purposes of encryption and decryption, the plain / cipher text  is 
  292.     converted into its numeric ASCII equivalent.
  293.  
  294.     For example, the text:
  295.  
  296.          ITS ALL GREEK TO ME
  297.  
  298.     Becomes the integer:
  299.  
  300.          73848332657676327182696975328479327769
  301.  
  302.               (since in ASCII 'I' = 73, 'T' = 84 etc)
  303.  
  304.     The text may now be treated as a simple (but large!) integer.
  305.  
  306.     RSA Encryption:
  307.  
  308.          ciphertext = plaintext ^ E modulo N
  309.  
  310.     RSA Decryption:
  311.  
  312.          plaintext = ciphertext ^ D modulo N
  313.  
  314.  
  315.     For example
  316.     -----------
  317.  
  318.          N = 11023
  319.          E = 11
  320.          D = 5891
  321.  
  322.     Plaintext  = Ho
  323.                = 3314
  324.  
  325.     Ciphertext = 3314 ^ 11 modulo 11023
  326.                = 10260
  327.  
  328.     Plaintext  = 10260 ^ 5891 modulo 11023
  329.                = 3314
  330.                = Ho
  331.  
  332.     nb:  IRIS  converts characters into 3 digit integers (0-255)  in  order  to 
  333.     support the full ASCII character set.
  334.     RSA Performance
  335.     ---------------
  336.  
  337.     The  generation  of  sufficiently  large prime  numbers  is  a  non-trivial 
  338.     problem,   and  this perhaps explains the scarcity of  implementations   of 
  339.     the  RSA  encryption scheme.  It  is  only since  the   arrival   of   fast  
  340.     16/32 bit  microprocessors  that microcomputer implementations have  become 
  341.     feasible at all.
  342.  
  343.     In  order to use realistic RSA keylengths, ie: 80 digits and above, a  fast 
  344.     PC  is  essential.  We advise the use of  the  following  minimum  hardware 
  345.     configuration:
  346.  
  347.          12 Mhz 80286, 0 or 1 Wait states. Norton SI: > 11
  348.  
  349.     Development   and   testing  was  performed  on  the   following   hardware 
  350.     configuration:
  351.  
  352.          16 Mhz 80286, 1 wait state. Norton SI: 15.6
  353.  
  354.     With  CPU performance at this level, it is perfectly feasible  to  generate 
  355.     300  digit RSA keys, although generation of keys of this size will  require 
  356.     several  hours  of compute time. The user may prefer to run  IRIS  RSA  key 
  357.     generation  as a background task under a DOS multitasker such as  DESQview, 
  358.     to allow the PC to be used for other purposes during key generation. 
  359.      
  360.  
  361.     Table 1 : Security of the RSA cipher
  362.  
  363.          Key Length          Estimated time to cryptanalyze cipher text
  364.  
  365.          50                  3.9 hours
  366.          75                  104 days
  367.          88                  11 years
  368.          100                 74 years
  369.          150                 1.0 million years
  370.          200                 3.8 billion years
  371.          250                 5.9 trillion years
  372.          300                 4.9 * 10 ^ 15 years
  373.          500                 4.2 * 10 ^ 25 years
  374.  
  375.     ( Assuming one computer operation per microsecond )
  376.  
  377.     The  reader  may  wish to consider that the Universe is  considered  to  be 
  378.     roughly 15 billion years old.
  379.  
  380.     A  key  length of 100 digits provides reasonable  security  against  attack 
  381.     using  current  technology; using 150 digit keys ensures  security  against 
  382.     forseable  future  developments. The user can select a key length  to  suit  
  383.     the  particular  application,  depending  on  the  relative  importance  of 
  384.     operational speed and security. 
  385.  
  386.     Unlike many conventional cryptosystems,  there is  currently no  proven  or 
  387.     theoretical  'sneak path' method of attack  to the RSA cryptosystem. It  is 
  388.     believed that the RSA cipher is unbreakable, even by government agencies.
  389.     The DES cipher
  390.     --------------
  391.  
  392.     In  1977  the  US Federal Bureau of Standards  approved  an  IBM  developed 
  393.     cryptographic  algorithm  for data security. The Data  Encryption  Standard 
  394.     (DES)  was approved for non-classified governmental purposes.  Since  then, 
  395.     DES  has  been  widely adopted in industry in hardware  and  software.  Its 
  396.     dominance  in the marketplace increases daily, and in respect of  practical 
  397.     cryptography, is the most important algorithm ever devised.
  398.  
  399.     DES is completely specified in a Federal Bureau publication known as  'FIPS 
  400.     PUB 46 - Data Encryption Standard'.
  401.  
  402.     DES  is  very  much  a traditional cipher in  the  sense  that  it  employs 
  403.     traditional  cryptographic  techniques of transposition  and  substitution. 
  404.     However,  it is designed to interrelate them so as to produce an  algorithm 
  405.     that is so complex that mathematical cryptanalysis is impossible.
  406.  
  407.     The  DES  algorithm is a 64 bit block cipher, and applies a 56 bit  key  to 
  408.     blocks  of data 64 bits in size. The DES key is generally represented as  a 
  409.     64 bit value, the redundant 8 bits provide parity checking for the key.
  410.  
  411.     Although  the  DES  algorithm is immensely  complex,  each  step  generally 
  412.     consists  of  some  simple  bit-manipulation  operation  and  the   overall 
  413.     algorithm  runs  rather  quickly when compared to,  say,  RSA.  (Of  course 
  414.     hardware DES implementations run much faster still).
  415.  
  416.     Commercial  users  of  IRIS are advised to use the DES  algorithm  for  any 
  417.     application NOT requiring the properties of a public key algorithm. This is 
  418.     for the following reasons:
  419.  
  420.          1. DES is an industry standard
  421.          2. DES provides a formidable level of cryptographic security
  422.          3. DES will be acceptable to any audit
  423.          4. DES uses keys that are short and easy to store and use
  424.          5. DES is fast
  425.  
  426.     For these reasons, DES is the default cipher algorithm within IRIS
  427.     The VERNAM cipher
  428.     -----------------
  429.  
  430.     The  VERNAM cipher is probably the fastest algorithm around - its speed  is 
  431.     limited  only by the I/O rate of the PC's disk and controller. The key  for 
  432.     the VERNAM algorithm may be chosen to be any easily remembered sequence  of 
  433.     letters/digits.
  434.  
  435.     However, the user should be aware that VERNAM does not offer the same  high 
  436.     level of security as offered by DES or RSA. Whilst the VERNAM algorithm  is 
  437.     commercially secure, it is most certainly breakable by government  agencies 
  438.     such as the NSA and GCHQ.
  439.  
  440.     The  origins  of  this cipher go back to 1917, when  MIT  graduate  Gilbert 
  441.     Vernam  proposed a new idea for enciphering teletype communications to  his 
  442.     employers AT&T. At the time, teletype transmission was by 5 bit wide  paper 
  443.     tape, utilising Baudot code. Vernam's idea was to run a second synchronised 
  444.     key-tape  during transmission, which would be XORed with the message  tape, 
  445.     thereby transmitting encrypted text. At the receiving end, an identical key 
  446.     tape would be synchronised to run along with the incoming message, and  the 
  447.     teletype would churn out the decrypted text.
  448.  
  449.     The IRIS implementation of VERNAM XOR's the plaintext / ciphertext with the 
  450.     output  of an additive type random number generator, which has a period  of 
  451.     roughly  2^55. The keyvalue used determines the start point of  the  random 
  452.     number generator.
  453.  
  454.     To  achieve  maximum speed from VERNAM, one should specify  /BRIEF  in  the 
  455.     cipher command, in order to suppress any output during cipher processing.
  456.  
  457.     From  a mathematical point of view, the VERNAM cipher may be considered  to 
  458.     be:
  459.  
  460.          ciphertext = plaintext  XOR key-stream
  461.          plaintext  = ciphertext XOR key-stream
  462.  
  463.     Where  the key stream is a pseudo-random number generator, the start  point 
  464.     of which is defined by the key used.
  465.  
  466.     The PLAYFAIR cipher
  467.     -------------------
  468.  
  469.     The  playfair  cipher is a simple but effective polygram cipher  which  saw 
  470.     active  service with the British Army during the Boer War and  First  World 
  471.     War.
  472.  
  473.     The cipher is named after an active Victorian public figure, Lyon Playfair, 
  474.     but was invented by his long term friend, Charles Wheatstone, professor  of 
  475.     philosophy at Kings College, London. The Playfair cipher is well  documented 
  476.     in the literature, but here follows a simple description:
  477.  
  478.  
  479.     The key is provided by a 5*5 matrix of 25 letters, usually 'J' is  ignored. 
  480.     For  each PAIR of plaintext letters m1, m2 the following rules are  applied 
  481.     to produce ciphertext c1, c2:
  482.  
  483.     Rules:
  484.  
  485.          R1.  If m1 and m2 are in the same row, then c1 and c2 are the 
  486.               two characters to the right of m1 and m2.
  487.  
  488.          R2.  If m1 and m2 are in the same column, then c1 and c2 are the
  489.               two characters below m1 and m2.
  490.  
  491.          R3.  If m1 and m2 are in different rows and columns, then c1 and
  492.               c2 are the other two corners of the rectangle having m1 and
  493.               m2 as corners, where c1 is in m1's row and c2 is in m2's row.
  494.  
  495.     Subrules:
  496.  
  497.          S1.  The first row of the matrix is considered to be below the
  498.               last row.
  499.  
  500.          S2.  The first column of the matrix is considered to be to the
  501.               right of the last column.
  502.  
  503.          S3.  If m1 = m2, a null letter is inserted between the two to
  504.               eliminate the double.
  505.  
  506.          S4.  If the plaintext has an odd number of characters, a null
  507.               letter is appended to the end of the plaintext.
  508.  
  509.  
  510.     For decryption, the same rules apply except for R1 and R2:
  511.  
  512.          R1.  If m1 and m2 are in the same row, then c1 and c2 are the
  513.               two characters to the LEFT of m1 and m2.
  514.  
  515.          R2.  If m1 and m2 are in the same column, then c1 and c2 are the
  516.               two characters ABOVE m1 and m2.
  517.  
  518.  
  519.     Creation of the key matrix:
  520.      
  521.     The  key  matrix may be loaded by any means, but is usually loaded  from  a 
  522.     'keyword  mixed alphabet' allowing a simple word or phrase to be used as  a 
  523.     key.
  524.  
  525.     The IRIS implementation of PLAYFAIR
  526.  
  527.     IRIS implements a 16*16 matrix which allows the entire ASCII character  set 
  528.     to  be represented. The user should be aware that the NUL character is  not 
  529.     supported,  and  will be suppressed on input. Therefore,  PLAYFAIR  is  not 
  530.     suitable for binary data such as program images etc.
  531.  
  532.  
  533.     In terms of cryptographic security, PLAYFAIR is very effective, and may  be 
  534.     considered  to be commercially secure, however PLAYFAIR will not  withstand 
  535.     attack by government authorities.
  536.  
  537.  
  538.     The BAZERIES cipher
  539.     -------------------
  540.  
  541.     The BAZERIES cipher is a cylindrical system devised by Commandant  Bazeries 
  542.     of  the  Black  Chamber, the French Army's  cryptographic  department.  The 
  543.     Bazeries cylinder has been used by security agencies throughout the  world, 
  544.     and has survived the testing of several decades.
  545.  
  546.     Historically,  the Bazeries system used a cylinder made up from  20  disks, 
  547.     each  having  26  character positions around the  rim.  IRIS  implements  a 
  548.     cylinder  of 23 disks each having 256 character positions around  the  rim. 
  549.     This  improves  security, and permits the full ASCII character  set  to  be 
  550.     processed.
  551.  
  552.     The  Bazeries cipher is reasonably fast during encrypt/decrypt  operations, 
  553.     but  the  key  cylinder construction is somewhat slow,  requiring  some  90 
  554.     seconds on a fast (16 Mhz) PC-AT class machine.
  555.  
  556.     The keyvalue supplied is used in the following manner:
  557.  
  558.          1: The 1st 8 characters are used to seed an additive type random
  559.             number generator (which has a period of roughly 2^55), which 
  560.             then provides (pseudo) random data to be loaded into the cylinder.
  561.  
  562.          2: The keyvalue is expanded to be at least as large as a cylinder row.
  563.             The bytes of the keyvalue are sorted, each byte-pair transposition
  564.             being duplicated as a transposition of the cylinder rows.
  565.  
  566.          2: The keyvalue is expanded to be at least as large as a cylinder column.
  567.             The bytes of the keyvalue are sorted, each byte-pair transposition
  568.             being duplicated as a transposition of the cylinder columns.
  569.  
  570.          4: The product of the value of cylinder coordinates [0][0] & [22][255] 
  571.             are used to determine the initial cylinder row used by the bazeries
  572.             cipher  function.  The contents of these cylinder elements  are, of 
  573.             course, key dependent.
  574.  
  575.     Users wishing to persue the workings of this algorithm are referred to  the 
  576.     literature.
  577.  
  578.     Starting IRIS
  579.     -------------
  580.  
  581.  
  582.     The IRIS system is started by typing 'IRIS' at the keyboard:
  583.  
  584.          C:>iris
  585.  
  586.          IRIS-cmd>          
  587.  
  588.          Alternatively, a command line may be entered:
  589.  
  590.          C:>iris checksum /filename = ozy.txt
  591.  
  592.     In this case, IRIS will perform the command requested and then exit to DOS. 
  593.     This is particularly useful when writing batch files which call IRIS.
  594.  
  595.  
  596.     Stopping IRIS
  597.     -------------
  598.  
  599.     To finish using IRIS, type EXIT or  CTRL-Z, <enter> at the command prompt.
  600.  
  601.     IRIS may be interrupted at any time by use of the CTRL-BREAK function,  but 
  602.     this  may  leave temporary files in the curent directory.  Temporary  files 
  603.     always  have  the  extension  '.XYZ' and are  therefore  easily  found  and 
  604.     deleted.
  605.     IRIS Command Reference
  606.     ----------------------
  607.  
  608.     HELP - Display simple help screen
  609.  
  610.     Syntax
  611.  
  612.          HELP 
  613.  
  614.     Description
  615.  
  616.     The help command displays a single screen of help information. 
  617.  
  618.     Example
  619.  
  620.          IRIS-cmd> help
  621.  
  622.                     PC-Iris v3.7-0 syntax summary
  623.  
  624.     Commands ------ Help  Set  Show  Cipher  Genkey
  625.                     Erase  Checksum  Listkey  Register
  626.                     Exit
  627.  
  628.     Qualifiers ---- /plain     = <filespec>    /cipher     = <filespec>
  629.                     /output    = <filespec>    /filename   = <filespec>
  630.                     /keyfile   = <filespec>    /keyname    = <keynam>
  631.                     /keyvalue  = <keyval>
  632.                     /keylength = <nnn>         /iterations = <nn>
  633.                     /function  = <encrypt,decrypt>
  634.                     /mode      = <ecb,cbc,cfb,mac>
  635.                     /algorithm = <rsa,des,vernam,playfair,bazeries ...>
  636.                     /erase     = <automatic,confirm,none>
  637.                     /crc       = <ccitt,ccittr,crc16,crc16r,bytesum>
  638.  
  639.     Switches ------ /[no]echo_plain    /[no]echo_cipher
  640.                     /[no]brief  /[no]binary  /[no]debug
  641.                     /[no]space  /[no]control /[no]punct
  642.                     /[no]upcase
  643.  
  644.     SET - Set Default values
  645.  
  646.     Syntax
  647.  
  648.          SET  /plain     = <filespec>       /cipher   = <filespec>
  649.               /output    = <filespec>       /filename = <filespec>
  650.               /keyfile   = <filespec>       /keyname  = <keynam>
  651.               /keyvalue  = <keyval>
  652.               /keylength = <nnn>            /iterations = <nn>
  653.               /function  = <encrypt,decrypt>
  654.               /mode      = <ecb,cbc,cfb,mac>
  655.               /algorithm = <rsa,des,vernam,playfair,bazeries ...>
  656.               /erase     = <automatic,confirm,none>
  657.               /crc       = <ccitt,ccittr,crc16,crc16r,bytesum>
  658.  
  659.               /[no]echo_plain     /[no]echo_cipher    /[no]brief
  660.               /[no]binary         /[no]space          /[no]upcase
  661.               /[no]punct          /[no]control        /[no]debug
  662.  
  663.  
  664.     Description
  665.  
  666.     The set command allows the user to change a default value for a  qualifier, 
  667.     which  will  then be used for any command if the user does  not  explicitly 
  668.     specify that qualifier in the command string.
  669.  
  670.  
  671.     Example
  672.  
  673.          IRIS-cmd> SET /algorithm=RSA
  674.  
  675.     SHOW - Show current default settings
  676.  
  677.     Syntax
  678.  
  679.          SHOW 
  680.  
  681.     Description
  682.  
  683.     The  show  command  displays the current default values  for  each  command 
  684.     qualifier.
  685.  
  686.  
  687.     Example
  688.  
  689.          IRIS-cmd> SHOW
  690.  
  691.                     PC-Iris v3.7-0 Current Defaults
  692.  
  693.     Assignments --- Plaintext     : Undefined
  694.                     Ciphertext    : Undefined
  695.                     Output        : Undefined
  696.                     Keyvalue      : Undefined
  697.                     Keyfile       : KEYS.DAT
  698.                     Keyname       : Undefined
  699.                     Filename      : Undefined
  700.                     Mode          : ECB
  701.                     Function      : Undefined
  702.                     Algorithm     : DES
  703.                     Erase         : AUTOMATIC
  704.                     CRC algorithm : CCITT
  705.  
  706.     Switches ------ Brief         : No
  707.                     Echo plain    : No
  708.                     Echo cipher   : No
  709.                     Binary        : Yes
  710.                     Space         : Yes
  711.                     Control       : Yes
  712.                     Punctuation   : Yes
  713.                     Upcase        : No
  714.  
  715.     Sizes --------- Iterations    : 10
  716.                     Keylength     : 100
  717.  
  718.     CHECKSUM - Calculate CRC checksums
  719.  
  720.     Syntax
  721.  
  722.          IRIS-cmd> CHECKSUM /filename=ozy.txt
  723.                             /crc = <ccitt,ccittr,crc16,crc16r,bytesum>
  724.  
  725.     Description
  726.  
  727.     The  checksum  module enables the calculation of CRC polynomials on  a  per 
  728.     file  basis.  The  CRC  values  generated may  be  used  to  'validate'  or 
  729.     'authenticate'  an MS-DOS file periodically as any change,  intentional  or 
  730.     unintentional will show a change in the CRC value generated.
  731.  
  732.     Five CRC algorithms are provided:
  733.  
  734.          CCITT     polynomial: X^16 + X^12 + X^5 + 1
  735.          CCITTR    reverse CCITT
  736.          CRC16     polynomial: X^16 + X^15 + X^2 + 1
  737.          CRC16R    reverse CRC16
  738.          BYTESUM   simple arithmetic sum of each byte in the file (not a CRC)
  739.  
  740.     A file checksum may be calculated thus:
  741.  
  742.     IRIS-cmd> CHECKSUM /filename=memo.txt /CRC=CRC16
  743.          CHECKSUM: CRC16 for MEMO.TXT is 044A
  744.  
  745.     (The default CRC algorithm is CCITT)
  746.  
  747.     GENKEY - Generate an RSA Key 
  748.  
  749.     Syntax
  750.  
  751.          GENKEY /keylength=<nnn> /keyfile=<filespec>
  752.                 /keyname=<keynam> /iterations=<nn>
  753.                 /algorithm=RSA
  754.  
  755.          Enter P0 seed:
  756.          Enter P1 seed:
  757.          Enter Q0 seed:
  758.          Enter Q1 seed:
  759.  
  760.          Enter E seed, <cr>:
  761.  
  762.     Description
  763.           
  764.     The  GENKEY command will generate RSA keys of up to 500 digits  in  length. 
  765.     The prime number search procedure is  due to Knuth, and the primality  test 
  766.     algorithm  is due to Fermat / Rabin.
  767.  
  768.     In  practice, the maximum size of keys which can be generated by GENKEY  is 
  769.     limited  by  the CPU  power of the host computer since  the  generation  of 
  770.     large prime numbers is computationally expensive.
  771.  
  772.  
  773.     Example
  774.  
  775.     The minimum form of the command would be:
  776.  
  777.          IRIS-cmd> GENKEY /alg=RSA /keyname=minotaur
  778.  
  779.          Enter P0 seed:
  780.          Enter P1 seed:
  781.          Enter Q0 seed:
  782.          Enter Q1 seed:
  783.          Enter random E:
  784.  
  785.     GENKEY   will prompt for four separate 'seeds'.  These  seeds are  used  to 
  786.     randomize  the  prime  number  search algorithm.   in  response   to  these 
  787.     prompts,  make random key depressions  of your numeric keypad,  when GENKEY 
  788.     has enough digits, it will stop prompting.
  789.  
  790.     When the four seeds have been entered, GENKEY will prompt for the 'E' seed. 
  791.     One  should  enter  a  random number of a similar size  to  the  key  being 
  792.     generated. Therefore, if you are generating a one hundred digit key,  enter 
  793.     a  value of E with maybe, 80 to 120 digits. Whatever value of 'E' that  you 
  794.     enter, the algorithm will produce a suitably large 'E'.
  795.  
  796.     Once   GENKEY has been 'seeded',  it will begin searching for  large  prime 
  797.     numbers  suitable for use in construction of  RSA keys.  This   process  is 
  798.     likely  to  be lengthy,  but  progress reports  are  issued  by  GENKEY  as  
  799.     various  milestones  are reached.
  800.     It is possible to alter the number of tests performed by the  probabilistic 
  801.     primality test used by GENKEY. 
  802.  
  803.     By  default,  GENKEY will use 10 iterations of the primality test  as proof 
  804.     that  a number is in fact  prime.  Since  this test  is  probabilistic  and 
  805.     based  on 'Monte Carlo' mathematics, the number being tested for  primality 
  806.     can only be said to be probably prime,  not definitely prime.  In fact, the 
  807.     chance that  this algorithm will fail when using 10 iterations is 9.53 * 10 
  808.     E-7. (Over a million to one against failure).
  809.      
  810.     One   may   adjust  the number of iterations used by  using   the  /ITER=nn 
  811.     qualifier.  Increasing  the  number  of iterations  will  slow   down   the  
  812.     generation  of  keys,   but  improve  their reliability and vice versa.
  813.  
  814.     When  GENKEY has completed a key search, the computed RSA key values,  'N', 
  815.     'E'  & 'D' are stored in the key file with the keyname specified. This  key 
  816.     may  then be used for encryption or decryption via the CIPHER  command,  by 
  817.     specifying the same keyname.
  818.  
  819.  
  820.     A more advanced use of GENKEY might be:
  821.  
  822.          IRIS-cmd> GENKEY /keyfile=mykeys.dat /keyname=minotaur
  823.                           /keylen=115 /iter=12 /alg=RSA
  824.  
  825.     This  will  generate a key of 115 digits length, called  'minotaur'  to  be 
  826.     stored in the keyfile 'mykeys.dat'. Twelve iterations of the  probabilistic 
  827.     primality test will used during validation of primes.
  828.  
  829.     The  'owned by user' field of the key as stored in the keyfile is  intended 
  830.     to  indicate the name of the user who created, and therefore owns the  key. 
  831.     In  order  to  allow  GENKEY  to load  this  field,  define  the  following 
  832.     environment variable in your AUTOEXEC.BAT file:
  833.  
  834.          SET USER=your_name
  835.     ERASE - Totally erase the contents of a file
  836.  
  837.     Syntax
  838.  
  839.          ERASE /filename=<filespec>
  840.  
  841.     Description
  842.  
  843.     The MS-DOS file delete command has a significant drawback from the security 
  844.     point of view; it does not delete data!
  845.  
  846.     Instead,  'delete'  simply removes the filename from  the  disk  directory, 
  847.     leaving  the  data intact. A subsequent user of the PC may  'scavenge'  the 
  848.     disk  and retrieve (possibly sensitive) data from these  un-allocated  disk 
  849.     blocks.
  850.  
  851.     To overcome this deficiency, IRIS provides an 'ERASE' command which applies 
  852.     the  US  Government Department of Defence (DOD) file erasure  algorithm  to 
  853.     guarantee that erased files may not be retrieved.
  854.  
  855.     Essentially,  ERASE  repeatedly overwrites a file with a  changing  pattern 
  856.     before deleting the directory entry, thereby removing the data from disk.
  857.  
  858.     Example
  859.  
  860.          IRIS-cmd> ERASE /filename=garbage.txt
  861.     LISTKEY - List key(s) held in a keyfile
  862.  
  863.     Syntax
  864.  
  865.          IRIS-cmd> LISTKEY   /keyfile=<filespec>
  866.                              /keyname=<keynam>
  867.                              /output=<filespec>
  868.  
  869.     Description
  870.  
  871.     The listkey command is used to display details of keys held in a key  file. 
  872.     The  following  command will display all key details held  in  the  default 
  873.     keyfile (KEYS.DAT):
  874.  
  875.          IRIS-cmd> LISTKEY
  876.  
  877.     To select just one key, issue the following command
  878.  
  879.          IRIS-cmd> LISTKEY /keyname=condor
  880.  
  881.     To write the output to a file, suitable for mailing to another person use:
  882.  
  883.          IRIS-cmd> LISTKEY /keyname=condor /output=key.txt
  884.     Example output:
  885.     ---------------------------------------------------------------------------
  886.     PC-Iris v3.7-0    Keyfile: KEYS.DAT
  887.     ---------------------------------------------------------------------------
  888.  
  889.     DES Key Found:
  890.     Key name  ----------------- CLAUDIUS
  891.     Owned by user ------------- DEMO
  892.     Date & Time created ------- Tue Jan 03 21:51:27 1989
  893.     Keyvalue ------------------ f7-7c-88-cc-a2-54-66-88
  894.  
  895.     VERNAM Key Found:
  896.     Key name  ----------------- CHARON
  897.     Owned by user ------------- DEMO
  898.     Date & Time created ------- Mon Mar 20 15:15:22 1989
  899.     Keyvalue ------------------ Bewaretheidesofmarch
  900.  
  901.     PLAYFAIR Key Found:
  902.     Key name  ----------------- EREBUS
  903.     Owned by user ------------- DEMO
  904.     Date & Time created ------- Mon Mar 20 15:17:02 1989
  905.     Keyvalue ------------------ Mys-ti-cism
  906.  
  907.     RSA Key Found:
  908.     Key name  ----------------- HERMES
  909.     Owned by user ------------- DEMO
  910.     Date & Time created ------- Tue Mar 21 21:04:20 1989
  911.     Public  key element N ----- 46575243895608955350340733197
  912.     Public  key element E ----- 15525081298535680925471754839
  913.     Private key element D ----- Not revealed
  914.     Encryption key length ----- 29
  915.     Encrypt-Decrypt Blocksize - 8
  916.  
  917.     ---------------------------------------------------------------------------
  918.     REGISTER - Display IRIS registration details
  919.  
  920.     Syntax
  921.  
  922.          REGISTER
  923.  
  924.     Description
  925.  
  926.          The register command displays details of IRIS registration thus:
  927.  
  928.  
  929.     PC-Iris v3.7-0
  930.  
  931.     UNMODIFIED copies of this program may be given to others for evaluation. This
  932.     program CANNOT be sold without written permission from Digital Crypto.
  933.  
  934.     If you intend to make use of any Digital Crypto product, we would appreciate
  935.     your prompt registration. In return for registration you will receive:
  936.  
  937.           The latest Digital Crypto disk
  938.           The latest full documentation set
  939.           A license agreement
  940.           Update notification & Telephone support
  941.  
  942.     Single PC registration is $39.00 (USD) or equivalent local currency
  943.     Payment to DIGITAL CRYPTO at:     DIGITAL CRYPTO
  944.                                       PO BOX 1
  945.                                       Penarth
  946.                                       South Glamorgan
  947.                                       United Kingdom  CF6 2WB
  948.  
  949.     Telephone UK: (0222) 711370     18:00 - 23:00 GMT
  950.  
  951.     Contact Digital Crypto for details of VMS-Iris / UNIX-Iris / OS2-Iris,
  952.     access to source code / cipher libraries, customization, site licensing etc.
  953.     CIPHER - Perform MS-DOS file Encryption / Decryption
  954.  
  955.     Syntax
  956.  
  957.          CIPHER    /plain = <filespec>     /cipher = <filespec>
  958.                    /keyfile = <filespec>   /keyname = <keynam>
  959.                    /keyvalue = <keyval>
  960.                    /function = <encrypt,decrypt>
  961.                    /mode = <ecb,cbc,cfb,mac>
  962.                    /algorithm = <rsa,des,vernam,playfair,bazeries ...>
  963.                    /[no]echo_plain  /[no]echo_cipher
  964.                    /[no]brief  /[no]binary  /[no]upcase
  965.                    /[no]space  /[no]control  /[no]punct
  966.                    /erase=<automatic,confirm,none>
  967.  
  968.     Description
  969.  
  970.     The  cipher  command is used to perform file encryption  or  decryption.  A 
  971.     minimum cipher command to encrypt a file is:
  972.  
  973.          CIPHER /plain=ozy.txt /keyvalue=1C-72-9F-61-CB-A3-17-88 /function=encrypt
  974.  
  975.     and to decrypt:
  976.  
  977.          CIPHER /cipher=ozy.txt/keyvalue=1C-72-9F-61-CB-A3-17-88 /function=decrypt
  978.  
  979.     The user may prefer to use the keyphrase packing feature thus:
  980.  
  981.          CIPHER /plain=ozy.txt  /keyvalue=bewaretheidesofmarch /function=encrypt
  982.          CIPHER /cipher=ozy.txt /keyvalue=bewaretheidesofmarch /function=decrypt
  983.  
  984.     Note that IRIS overwrites the input file in both these cases, using the DOD 
  985.     secure file erasure algorithm.
  986.  
  987.     If  the  user  wishes to retain the input  file  unchanged,  the  following 
  988.     command may be specified:
  989.  
  990.          CIPHER    /plain=ozy.txt /cipher=ozy.cpr
  991.                    /keyvalue=1C-72-9F-61-CB-A3-17-88 /function=encrypt
  992.                    /erase=none
  993.  
  994.     And to decrypt:
  995.  
  996.          CIPHER    /plain=ozy.txt /cipher=ozy.cpr
  997.                    /keyvalue=1C-72-9F-61-CB-A3-17-88 /function=decrypt
  998.                    /erase=none
  999.  
  1000.     Qualifiers:
  1001.  
  1002.          /plain         Plaintext filespec
  1003.          /cipher        Ciphertext filespec
  1004.          /function      Cipher function:
  1005.                              ENCRYPT
  1006.                              DECRYPT
  1007.          /algorithm     Cipher algorithm:
  1008.                              RSA
  1009.                              DES
  1010.                              PLAYFAIR
  1011.                              VERNAM
  1012.                              BAZERIES
  1013.          /mode=         Cipher mode:
  1014.                              ECB - electronic code book (default)
  1015.                              CBC - cipher block chaining  (Unsupported in v3.7)
  1016.                              CFB - cipher feedback        (Unsupported in v3.7)
  1017.                              MAC - message authentication (Unsupported in v3.7)
  1018.          /keyfile       Specify name of keyfile holding key to be used
  1019.          /keyname       Specify name of key to be used
  1020.          /keyvalue      Directly specify key value or key phrase
  1021.          /erase         Select file erasure mode:
  1022.                              AUTOMATIC - erase the input file automatically
  1023.                              CONFIRM   - prompt for confirmation before erase
  1024.                              NONE      - do not erase input file
  1025.          /[no]echo_plain    [Do not] echo plain text as it is read / written
  1026.          /[no]echo_cipher   [Do not] echo cipher text as it is read / written
  1027.          /[no]brief         [Do not] inhibit display of key details being used
  1028.          /[no]binary        [Do not] permit use of binary data
  1029.          /[no]space         [Do not] permit space characters 
  1030.          /[no]control       [Do not] permit control characters
  1031.          /[no]punct         [Do not] permit punctuation characters
  1032.          /[no]upcase        [Do not] convert lower case input to upper case
  1033.     EXIT - Exit from IRIS to DOS
  1034.  
  1035.     Syntax
  1036.  
  1037.          EXIT 
  1038.  
  1039.     Description
  1040.  
  1041.          The exit command returns the user to DOS
  1042.  
  1043.     Example
  1044.  
  1045.          IRIS-cmd> EXIT
  1046.          C:>
  1047.     Maintaining key files
  1048.     ---------------------
  1049.  
  1050.     Keys  may be submitted to the CIPHER command via keyfiles. It is the  users 
  1051.     responsibility  to edit and maintain these files using a text editor.  When 
  1052.     editing  IRIS keyfiles, use your editor in ASCII mode,  eg:  'non-document' 
  1053.     mode in Wordstar.
  1054.  
  1055.     The format of an IRIS keyfile is thus:
  1056.  
  1057.     hash[Keytype][Keyname][Keyowner][wkd mmm dd hh:mm:ss yyyy][key1][key2][key3]
  1058.  
  1059.     For example:
  1060.  
  1061.     #[DES][CLAUDIUS][DEMO][Tue Jan 03 21:51:27 1989][f7-7c-88-cc-a2-54-66-88]
  1062.     #[VERNAM][CHARON][DEMO][Mon Mar 20 15:15:22 1989][Bewaretheidesofmarch]
  1063.     #[PLAYFAIR][EREBUS][DEMO][Mon Mar 20 15:17:02 1989][Mys-ti-cism]
  1064.     #[RSA][T3][][Mon Mar 20 16:36:01 1989][1062961][353639][624059]
  1065.  
  1066.     Any line NOT beginning with '#' is considered to be a comment.
  1067.  
  1068.     Each field has the following function:
  1069.  
  1070.     Hash      - Indicates start of record
  1071.     Keytype   - Indicates the type of key: RSA, DES, VERNAM, PLAYFAIR
  1072.     Keyname   - Indicates the name of the key
  1073.     Keyowner  - Indicates the owner (user) of the key
  1074.     Date      - Indicates when the key was loaded
  1075.     Key1,2,3  - Keyvalue(s)
  1076.  
  1077.     Future enhancements to IRIS
  1078.  
  1079.     The  next  major  release  of IRIS is expected  to  contain  at  least  the 
  1080.     following enhancements:
  1081.  
  1082.     Encrypted keyfiles
  1083.  
  1084.          Individual key records may be stored in DES-encrypted format
  1085.          requiring the submission of a key prior to use by CIPHER.
  1086.  
  1087.     Support for all common cipher modes
  1088.  
  1089.          ECB (Electronic code book) is currently supported
  1090.          CBC (Cipher block chaining) to be implemented
  1091.          CFB (Cipher feedback) to be implemented
  1092.          MAC (Message authentication) to be implemented
  1093.  
  1094.     Support for further cipher algorithms
  1095.  
  1096.          More historically interesting ciphers will be implemented such as
  1097.          the German WW2 ENIGMA cipher, the 'RUSSIAN SPY' cipher etc. 
  1098.  
  1099.     Non-volatile setup parameters     
  1100.         
  1101.          The SET function will be modified to store changed parameters
  1102.          permanently.
  1103.  
  1104.     Full screen menu
  1105.  
  1106.          A  full screen interface to IRIS with pull down menu's will be provided, 
  1107.          although the current 'IRIS-cmd>' command line interface will be retained
  1108.          as an alternative.
  1109.  
  1110.     Cryptogram support
  1111.  
  1112.          IRIS will support ASCII cryptograms which will be able to be exchanged
  1113.          via  E-Mail  and BBS services. Currently, encrypted output  is  binary
  1114.          (except for RSA) which causes problems with simple message transfer.
  1115.  
  1116.          The format of an IRIS cryptogram will be as follows:
  1117.  
  1118.          <<<::: PC-Iris v4.0-0 :::>>>
  1119.          <<<::: Cryptogram Start :::>>>
  1120.  
  1121.          1C AE 00 07 F3 ... (up to 80 cols)
  1122.          FA 3B 12 6D ... etc
  1123.  
  1124.          <<<::: Cryptogram End :::>>>
  1125.          <<<::: RSA Public Key is N:12345678912345 E:123456789 :::>>>
  1126.  
  1127.  
  1128.     Comments and suggestions regarding enhancements are always welcome.
  1129.     Appendix A - IRIS Command Syntax Conventions
  1130.     --------------------------------------------
  1131.  
  1132.          An IRIS command is built up from three components:
  1133.  
  1134.               i]   Command verb
  1135.               ii]  Symbolic assignment
  1136.               iii] Directive
  1137.  
  1138.     (Symbolic assignments and directives are collectively known as qualifiers.)
  1139.  
  1140.     Command verb
  1141.  
  1142.     A command verb is the name of a command. Valid command verbs are HELP, SET, 
  1143.     CIPHER etc.
  1144.  
  1145.     Symbolic Assignments
  1146.  
  1147.     A  symbolic assignment occurs when a symbol is equated to some   text;  for 
  1148.     example  /KEYFILE = mykeys.dat is an example where the symbol  /KEYFILE  is 
  1149.     equated to the text 'mykeys.dat'
  1150.  
  1151.     Directives
  1152.  
  1153.     A  directive  occurs  when a part of a command demands  a  true  or   false 
  1154.     reaction. For example: /NOBINARY and /ECHO_PLAIN.
  1155.  
  1156.     Command parsing and syntax analysis
  1157.  
  1158.     The IRIS command parser has several properties:
  1159.  
  1160.          i] It ignores all whitespace (LF, TAB, SP etc)
  1161.         ii] It converts lower case to upper case
  1162.        iii] It expects symbols to be separated with a foreward slash (/).
  1163.         iv] It allows abbreviation of any command down to a single character, 
  1164.             and resolves ambiguities on a first found basis.
  1165.          v] It is not concerned with the order in which
  1166.             the various parts of a command are entered.
  1167.  
  1168.     Therefore, the following command:
  1169.  
  1170.          CIPHER /PLAIN = ozy.txt /KEYVALUE = AC-1F-43-6B-11-73-8D-9A
  1171.                 /FUNCTION=encrypt
  1172.  
  1173.     Could be expressed as:
  1174.  
  1175.          Cipher /FUN=encrypt /plaIN = OZY.txt
  1176.                 /KEYV     = AC-1F-43-6B-11-73-8D-9A
  1177.                      
  1178.     Appendix B - IRIS Error Messages
  1179.     --------------------------------
  1180.  
  1181.     Message Classes
  1182.  
  1183.          
  1184.          IRIS can produce two classes of error message:
  1185.  
  1186.               i] Standard IRIS format messages
  1187.              ii] Internal error messages
  1188.  
  1189.  
  1190.  
  1191.     Standard IRIS format messages
  1192.  
  1193.     Most  of the messages produced by the IRIS software will be  standard  IRIS 
  1194.     format, and have the following format:
  1195.  
  1196.          SEVERITY: IDENT, TEXT. QUALIFICATION 
  1197.  
  1198.          Where:
  1199.  
  1200.               SEVERITY            Severity level indicator, can have the
  1201.                                   following values:
  1202.  
  1203.                                        SUCCESS
  1204.                                        INFORMATIONAL
  1205.                                        WARNING
  1206.                                        ERROR
  1207.                                        FATAL
  1208.  
  1209.  
  1210.               IDENT               An abbreviation of the message text
  1211.  
  1212.               TEXT                The explanation of the message
  1213.  
  1214.               QUALIFICATION       Not always present. Describes problem in
  1215.                                   more detail.
  1216.  
  1217.  
  1218.     Internal Error messages
  1219.  
  1220.  
  1221.     Internal  errors should never occur. An internal error is produced  when  a 
  1222.     software  trap  detects  an exception condition  which  should  not  exist.  
  1223.     Receiving  an  internal  error message is an indication  that  there  is  a 
  1224.     serious problem with the computer hardware, operating system or IRIS.
  1225.  
  1226.          Internal errors have the following format:
  1227.  
  1228.          INTERNAL ERROR nn - TEXT
  1229.     Appendix C - Bibliography
  1230.     -------------------------
  1231.  
  1232.  
  1233.     R.L. Rivest         A method for obtaining digital signatures
  1234.     A. Shamir           and public key cryptosystems
  1235.     L. Adleman                    - Communications of the ACM 
  1236.                                        February 1978
  1237.  
  1238.     Donald E. Knuth     The Art Of Computer Programming
  1239.                              Volume 2 / Seminumerical Algorithms
  1240.                                   - Addison Wesley
  1241.                                        1969,1981
  1242.  
  1243.     John Smith          Public Key Cryptography
  1244.                                   - Byte
  1245.                                        January 1983
  1246.  
  1247.     Martin E. Hellman   The Mathematics of Public Key Cryptography
  1248.                                   - Scientific American
  1249.                                        August 1979
  1250.  
  1251.     Whitfield Diffie    Privacy And Authentication: An Introduction
  1252.     Martin E. Hellman   To Cryptography
  1253.                                   - Proceedings of the IEEE
  1254.                                        March 1979
  1255.  
  1256.     D.W. Davies         An Annotated Bibliography of recent
  1257.     W.L. Price          Publications on Data Security and Cryptography
  1258.                                   - National Physical Laboratory
  1259.                                        January 1980
  1260.  
  1261.     Brian Beckett       Introduction to Cryptology
  1262.                                   - Blackwell Scientific
  1263.                                        1988
  1264.  
  1265.     Meyer               CRYPTOGRAPHY: A new dimension in computer
  1266.     Matyas                            data security
  1267.                                   - Wiley Interscience
  1268.                                        1982
  1269.  
  1270.     David Kahn          The Codebreakers
  1271.                                   - Macmillan. New York.
  1272.                                        1967
  1273.